

#include "theaternames.h"
#include "syscall.h"

/*Previously Local Variables*/




void initializeShared(){

	int i = 0;
	char* str;

	Printing("Beginning Initialization\n", ConsoleOutput, 0,0);

	/* Global Variables */
	
	Printing("Global Variables\n", ConsoleOutput, 0,0);

	
	CreateMonitor(numGroupsName, numGroupsNameLength);
	CreateMonitor(numCustomersName, numCustomersNameLength);

	/* Customer Data "Structure"*/
	
	Printing("Customer Data Structer\n", ConsoleOutput, 0,0);

	CreateMonitor(customerNumberName, customerNumberNameLength);
	CreateMonitor(customerGroupNumberName, customerGroupNumberNameLength);
	CreateMonitor(customerWantsPopcornName, customerWantsPopcornNameLength);
	CreateMonitor(customerWantsSodaName, customerWantsSodaNameLength);
	CreateMonitor(customerNeedsBathroomName, customerNeedsBathroomNameLength);
	CreateMonitor(customerIsHeadCustomerName, customerIsHeadCustomerNameLength);
	CreateMonitor(customerSeatNumberName, customerIsHeadCustomerNameLength);
	CreateMonitor(customerHasPopcornName, customerHasPopcornNameLength);
	CreateMonitor(customerHasSodaName, customerHasSodaNameLength);
	
	
		
	/*Head Customer Information*/	
	Printing("Head Customer Information\n", ConsoleOutput, 0,0);
	
	CreateMonitor(groupSizeName, groupSizeNameLength);
	CreateMonitor(groupPopcornSizeName, groupPopcornSizeNameLength);
	CreateMonitor(groupSodaSizeName, groupSodaSizeNameLength);
	CreateMonitor(groupBathroomSizeName, groupBathroomSizeNameLength);
	CreateMonitor(groupMoneyName, groupMoneyNameLength);
	CreateMonitor(groupTicketsName, groupTicketsNameLength);
	CreateMonitor(customerStateName, customerStateNameLength);
	
	CreateLock(customerStateLockName, customerStateLockNameLength);

	/*HeadCustomer - Regular Customer Interaction*/

	Printing("HeadCustomer Reg Customer Interaction\n", ConsoleOutput, 0,0);
	

	for(i = 0; i < MAX_GROUPS; i++){
	
		switch(i){
			
			case 0:
				str = "HeadCustomerLock0";
			break;
			case 1:
				str = "HeadCustomerLock1";
			break;
			case 2:
				str = "HeadCustomerLock2";
			break;
			case 3:
				str = "HeadCustomerLock3";
			break;
			case 4:
				str = "HeadCustomerLock4";
			break;
			case 5:
				str = "HeadCustomerLock5";
			break;		
			case 6:
				str = "HeadCustomerLock6";
			break;
			case 7:
				str = "HeadCustomerLock7";
			break;
			case 8:
				str = "HeadCustomerLock8";
			break;
			case 9:
				str = "HeadCustomerLock9";
			break;
		}
	
		headCustomerLockName[i]  = str;
		headCustomerLockNameLength[i] = 17;
	
		CreateLock(headCustomerLockName[i],  headCustomerLockNameLength[i]);
	}
	
	for(i = 0; i < MAX_GROUPS; i++){
	
		switch(i){
			
			case 0:
				str = "HeadCustomerCV0";
			break;
			case 1:
				str = "HeadCustomerCV1";
			break;
			case 2:
				str = "HeadCustomerCV2";
			break;
			case 3:
				str = "HeadCustomerCV3";
			break;
			case 4:
				str = "HeadCustomerCV4";
			break;
			case 5:
				str = "HeadCustomerCV5";
			break;		
			case 6:
				str = "HeadCustomerCV6";
			break;
			case 7:
				str = "HeadCustomerCV7";
			break;
			case 8:
				str = "HeadCustomerCV8";
			break;
			case 9:
				str = "HeadCustomerCV9";
			break;
		}
	
		headCustomerConditionVariableName[i]  = str;
		headCustomerConditionVariableNameLength[i] = 15;
	
		CreateCondition(headCustomerConditionVariableName[i], headCustomerConditionVariableNameLength[i]);
	}
	
	for(i = 0; i < MAX_GROUPS*4; i++){
	
		switch(i){
			
			case 0:
				str = "RegularCustomerCV00";
			break;
			case 1:
				str = "RegularCustomerCV01";
			break;
			case 2:
				str = "RegularCustomerCV02";
			break;
			case 3:
				str = "RegularCustomerCV03";
			break;
			case 4:
				str = "RegularCustomerCV04";
			break;
			case 5:
				str = "RegularCustomerCV05";
			break;		
			case 6:
				str = "RegularCustomerCV06";
			break;
			case 7:
				str = "RegularCustomerCV07";
			break;
			case 8:
				str = "RegularCustomerCV08";
			break;
			case 9:
				str = "RegularCustomerCV09";
			break;
			case 10:
				str = "RegularCustomerCV10";
			break;
			case 11:
				str = "RegularCustomerCV11";
			break;
			case 12:
				str = "RegularCustomerCV12";
			break;
			case 13:
				str = "RegularCustomerCV13";
			break;
			case 14:
				str = "RegularCustomerCV14";
			break;
			case 15:
				str = "RegularCustomerCV15";
			break;		
			case 16:
				str = "RegularCustomerCV16";
			break;
			case 17:
				str = "RegularCustomerCV17";
			break;
			case 18:
				str = "RegularCustomerCV18";
			break;
			case 19:
				str = "RegularCustomerCV19";
			break;
			case 20:
				str = "RegularCustomerCV20";
			break;
			case 21:
				str = "RegularCustomerCV21";
			break;
			case 22:
				str = "RegularCustomerCV22";
			break;
			case 23:
				str = "RegularCustomerCV23";
			break;
			case 24:
				str = "RegularCustomerCV24";
			break;
			case 25:
				str = "RegularCustomerCV25";
			break;		
			case 26:
				str = "RegularCustomerCV26";
			break;
			case 27:
				str = "RegularCustomerCV27";
			break;
			case 28:
				str = "RegularCustomerCV28";
			break;
			case 29:
				str = "RegularCustomerCV29";
			break;
			case 30:
				str = "RegularCustomerCV30";
			break;
			case 31:
				str = "RegularCustomerCV31";
			break;
			case 32:
				str = "RegularCustomerCV32";
			break;
			case 33:
				str = "RegularCustomerCV33";
			break;
			case 34:
				str = "RegularCustomerCV34";
			break;
			case 35:
				str = "RegularCustomerCV35";
			break;		
			case 36:
				str = "RegularCustomerCV36";
			break;
			case 37:
				str = "RegularCustomerCV37";
			break;
			case 38:
				str = "RegularCustomerCV38";
			break;
			case 39:
				str = "RegularCustomerCV39";
			break;
		}
		
	
		regularCustomerConditionVariableName[i]  = str;
		regularCustomerConditionVariableNameLength[i] = 19;
	
		CreateCondition(regularCustomerConditionVariableName[i], regularCustomerConditionVariableNameLength[i]);
	
	}
	
	/* Customer Finding Ticket Line */
	
	Printing("Customer Finding Ticket Line\n", ConsoleOutput, 0,0);

	CreateLock(ticketClerkLineLockName, ticketClerkLineLockNameLength);
	
	for(i = 0; i < MAX_TC; i++){
	
		switch(i){
			
			case 0:
				str = "TicketClerkLineCV0";
			break;
			case 1:
				str = "TicketClerkLineCV1";
			break;
			case 2:
				str = "TicketClerkLineCV2";
			break;
			case 3:
				str = "TicketClerkLineCV3";
			break;
			case 4:
				str = "TicketClerkLineCV4";
			break;
			case 5:
				str = "TicketClerkLineCV5";
			break;		
		}
	
		ticketClerkLineConditionVariableName[i]  = str;
		ticketClerkLineConditionVariableNameLength[i] = 18;
	
		CreateCondition(ticketClerkLineConditionVariableName[i], ticketClerkLineConditionVariableNameLength[i]);
	}
	CreateMonitor(ticketClerkLineCountName, ticketClerkLineCountNameLength);
	CreateMonitor(ticketClerkStateName, ticketClerkStateNameLength);

	/* Customer - TicketClerk Interaction */	
	Printing("Customer - TicketClerk Interaction\n", ConsoleOutput, 0,0);
	
	 for(i = 0; i < MAX_TC; i++){
	
		switch(i){
			
			case 0:
				str = "TicketClerkLock0";
			break;
			case 1:
				str = "TicketClerkLock1";
			break;
			case 2:
				str = "TicketClerkLock2";
			break;
			case 3:
				str = "TTicketClerkLock3";
			break;
			case 4:
				str = "TicketClerkLock4";
			break;
			case 5:
				str = "TicketClerkLock5";
			break;		
		}
	
		ticketClerkLockName[i]  = str;
		ticketClerkLockNameLength[i] = 16;
		
		CreateLock(ticketClerkLockName[i], ticketClerkLockNameLength[i]);
	 
	}
	 
	
	for(i = 0; i < MAX_TC; i++){
	
		switch(i){
			
			case 0:
				str = "TicketClerkCV0";
			break;
			case 1:
				str = "TicketClerkCV1";
			break;
			case 2:
				str = "TicketClerkCV2";
			break;
			case 3:
				str = "TicketClerkCV3";
			break;
			case 4:
				str = "TicketClerkCV4";
			break;
			case 5:
				str = "TicketClerkCV5";
			break;		
		}
	
		ticketClerkConditionVariableName[i]  = str;
		ticketClerkConditionVariableNameLength[i] = 14;
		
		CreateCondition(ticketClerkConditionVariableName[i], ticketClerkConditionVariableNameLength[i]);
	 
	}
	
	
	
	CreateMonitor(ticketClerkRegisterName, ticketClerkRegisterNameLength);
	CreateMonitor(ticketClerkNumToSellName, ticketClerkNumToSellNameLength);

	/* Customer Finding Concession Line */
	
	Printing("Customer Finding Concession Line\n", ConsoleOutput, 0,0);
	

	Printing("Customer - TicketClerk Interaction\n", ConsoleOutput, 0,0);
	
	 for(i = 0; i < MAX_TC; i++){
	
		switch(i){
			
			case 0:
				str = "ConcesClerkLk0";
			break;
			case 1:
				str = "ConcesClerkLk1";
			break;
			case 2:
				str = "ConcesClerkLk2";
			break;
			case 3:
				str = "ConcesClerkLk3";
			break;
			case 4:
				str = "ConcesClerkLk4";
			break;
			case 5:
				str = "ConcesClerkLk5";
			break;		
		}
	
		concessionClerkLockName[i]  = str;
		concessionClerkLockNameLength[i] = 14;
		CreateLock(concessionClerkLockName[i], concessionClerkLockNameLength[i]);

	}
	
	CreateLock(concessionClerkLineLockName, concessionClerkLineLockNameLength);

	
	 for(i = 0; i < MAX_CC; i++){
	
		switch(i){
			
			case 0:
				str = "ConcessClerkCV0";
			break;
			case 1:
				str = "ConcessClerkCV1";
			break;
			case 2:
				str = "ConcessClerkCV2";
			break;
			case 3:
				str = "ConcessClerkCV3";
			break;
			case 4:
				str = "ConcessClerkCV4";
			break;
			case 5:
				str = "ConcessClerkCV5";
			break;		
		}
	
		concessionClerkLineConditionVariableName[i]  = str;
		concessionClerkLineConditionVariableNameLength[i] = 15;
		CreateCondition(concessionClerkLineConditionVariableName[i], concessionClerkLineConditionVariableNameLength[i]);
	}
	
	
	CreateMonitor(concessionClerkLineCountName, concessionClerkLineCountNameLength);
	CreateMonitor(concessionClerkStateName, concessionClerkStateNameLength);
	
	/* Customer - ConcessionClerk Interaction */	
	Printing("Customer - Concession Interaction\n", ConsoleOutput, 0,0);	
	
	for(i = 0; i < MAX_CC; i++){
	
		switch(i){
			
			case 0:
				str = "ConcesClerkCV0";
			break;
			case 1:
				str = "ConcesClerkCV1";
			break;
			case 2:
				str = "ConcesClerkCV2";
			break;
			case 3:
				str = "ConcesClerkCV3";
			break;
			case 4:
				str = "ConcesClerkCV4";
			break;
			case 5:
				str = "ConcesClerkCV5";
			break;		
		}
	
		concessionClerkConditionVariableName[i]  = str;
		concessionClerkConditionVariableNameLength[i] = 14;
		
	
	CreateCondition(concessionClerkConditionVariableName[i], concessionClerkConditionVariableNameLength[i]);
	
	}

	CreateMonitor(concessionClerkRegisterName, concessionClerkRegisterNameLength);
	CreateMonitor(concessionClerkPopcornToSellName, concessionClerkPopcornToSellNameLength);
	CreateMonitor(concessionClerkSodaToSellName, concessionClerkSodaToSellNameLength);
	
	/*Customer Finding TicketTaker Line*/
	Printing("Customer Finding TicketTaker Line\n", ConsoleOutput, 0,0);

	CreateLock(ticketTakerLineLockName, ticketTakerLineLockNameLength);
	
	for(i = 0; i < MAX_CC; i++){
	
		switch(i){
			
			case 0:
				str = "TicketTakerCV0";
			break;
			case 1:
				str = "TicketTakerCV1";
			break;
			case 2:
				str = "TicketTakerCV2";
			break;
			case 3:
				str = "TicketTakerCV3";
			break;
			case 4:
				str = "TicketTakerCV4";
			break;
			case 5:
				str = "TicketTakerCV5";
			break;		
		}
	
		ticketTakerLineConditionVariableName[i]  = str;
		ticketTakerLineConditionVariableNameLength[i] = 14;
		
		CreateCondition(ticketTakerLineConditionVariableName, ticketTakerLineConditionVariableNameLength);
	
	
	}
	
	
	CreateMonitor(ticketTakerLineCountName, ticketTakerLineCountNameLength);
	CreateMonitor(ticketTakerStateName, ticketTakerStateNameLength);

	/*Customer - TicketTaker Interaction*/
	Printing("Customer - TicketTaker Interaction\n", ConsoleOutput, 0,0);
	
	for(i = 0; i < MAX_TT; i++){
	
		switch(i){
			
			case 0:
				str = "TicketTakerLock0";
			break;
			case 1:
				str = "TicketTakerLock1";
			break;
			case 2:
				str = "TicketTakerLock2";
			break;
			case 3:
				str = "TicketTakerLock3";
			break;
			case 4:
				str = "TicketTakerLock4";
			break;
			case 5:
				str = "TicketTakerLock5";
			break;		
		}
	
		ticketTakerLockName[i]  = str;
		ticketTakerLockNameLength[i] = 16;
		
		CreateLock(ticketTakerLockName[i], ticketTakerLockNameLength[i]);

	}
	
	for(i = 0; i < MAX_TT; i++){
	
		switch(i){
			
			case 0:
				str = "TicketTakerCV0";
			break;
			case 1:
				str = "TicketTakerCV1";
			break;
			case 2:
				str = "TicketTakerCV2";
			break;
			case 3:
				str = "TicketTakerCV3";
			break;
			case 4:
				str = "TicketTakerCV4";
			break;
			case 5:
				str = "TicketTakerCV5";
			break;		
		}
	
		ticketTakerConditionVariableName[i]  = str;
		ticketTakerConditionVariableNameLength[i] = 14;

		CreateCondition(ticketTakerConditionVariableName[i], ticketTakerConditionVariableNameLength[i]);

	}

	CreateMonitor(ticketTakerCounterName, ticketTakerCounterNameLength);
	CreateMonitor(numberAdmittedName, numberAdmittedNameLength);
	
	/* Lobby variables */
	Printing("Lobby Variables\n", ConsoleOutput, 0,0);
	
	CreateCondition(lobbyConditionVariableName, lobbyConditionVariableNameLength);

	/* Total register values */
	Printing("Total Register Values\n", ConsoleOutput, 0,0);
	
	CreateMonitor(ticketMoneyName, ticketMoneyNameLength);
	CreateMonitor(concessionMoneyName, concessionMoneyNameLength);

	/* Customer Finding Seat Interaction*/
	Printing("Customer Finding Seat Interaction\n", ConsoleOutput, 0,0);	
	
	for(i = 0; i < MAX_TT; i++){
	
		switch(i){
			
			case 0:
				str = "TicketTakerCV0";
			break;
			case 1:
				str = "TicketTakerCV1";
			break;
			case 2:
				str = "TicketTakerCV2";
			break;
			case 3:
				str = "TicketTakerCV3";
			break;
			case 4:
				str = "TicketTakerCV4";
			break;
			case 5:
				str = "TicketTakerCV5";
			break;		
		}
	
		ticketTakerConditionVariableName[i]  = str;
		ticketTakerConditionVariableNameLength[i] = 14;

		CreateCondition(ticketTakerConditionVariableName[i], ticketTakerConditionVariableNameLength[i]);

	}
	for(i = 0; i < ROW_SIZE; i++){
	
		switch(i){
		
			case 0:
				str = "Row0";
			break;
			case 1:
				str = "Row1";
			break;
			case 2:
				str = "Row2";
			break;
			case 3:
				str = "Row3";
			break;
			case 4:
				str = "Row4";
			break;
			case 5:
				str = "Row5";
			break;		
		}
	
		roomName[i]  = str;
		roomNameLength[i] = 4;
		
		CreateMonitor(roomName[i], roomNameLength[i]); 
	}
	
	CreateMonitor(seatsFilledName, seatsFilledNameLength);
	CreateLock(movieRoomLockName, movieRoomLockNameLength);
	CreateCondition(movieRoomConditionVariableName, movieRoomConditionVariableNameLength);
	
	/* Technician - Customer Interaction */
	Printing("Technician - Customer Interaction\n", ConsoleOutput, 0,0);

	CreateLock(movieDataLockName, movieDataLockNameLength);
	CreateCondition(technicianDataConditionVariableName, technicianDataConditionVariableNameLength);

	/* Manager - Technician Interaction */
	Printing("Manager - Technician Interaction \n", ConsoleOutput, 0,0);

	CreateMonitor(movieStartTimeName, movieStartTimeNameLength);
	CreateMonitor(movieEndedName, movieEndedNameLength);
	CreateMonitor(movieLengthName, movieLengthNameLength);
	
	/* Manager - End Simulation Information */
	Printing("Manager - End Simulation Information\n", ConsoleOutput, 0,0);

	CreateMonitor(custCounterName, custCounterNameLength);
	CreateLock(counterLockName, counterLockNameLength);

	/* Manager - Ticket Clerk break scenario */
	Printing("Manager - Ticket Clerk break scenario\n", ConsoleOutput, 0,0);
	
	/*CreateLock(ticketClerkBreakLockName, ticketClerkBreakLockNameLength);*/
	
	for(i = 0; i < MAX_TC; i++){
	
		switch(i){
		
			case 0:
				str = "TicketClerkBreakLk0";
			break;
			case 1:
				str = "TicketClerkBreakLk1";
			break;
			case 2:
				str = "TicketClerkBreakLk2";
			break;
			case 3:
				str = "TicketClerkBreakLk3";
			break;
			case 4:
				str = "TicketClerkBreakLk4";
			break;
			case 5:
				str = "TicketClerkBreakLk5";
			break;		
		}
	
		ticketClerkBreakLockName[i]  = str;
		ticketClerkBreakLockNameLength[i] = 19;
		
		CreateLock(ticketClerkBreakLockName[i], ticketClerkBreakLockNameLength[i]);

	}	
	
	CreateCondition(ticketClerkBreakConditionVariableName, ticketClerkBreakConditionVariableNameLength);
	CreateMonitor(ticketClerkBreakName, ticketClerkBreakNameLength);

	/* Manager - Concession Clerk break scenario */
	Printing("Manager - Concessino Clerk break scenario\n", ConsoleOutput, 0,0);
	
	for(i = 0; i < MAX_CC; i++){
	
		switch(i){
		
			case 0:
				str = "CClerkBreakLock0";
			break;
			case 1:
				str = "CClerkBreakLock1";
			break;
			case 2:
				str = "CClerkBreakLock2";
			break;
			case 3:
				str = "CClerkBreakLock3";
			break;
			case 4:
				str = "CClerkBreakLock4";
			break;
			case 5:
				str = "CClerkBreakLock5";
			break;		
		}
	
		concessionClerkBreakLockName[i]  = str;
		concessionClerkBreakLockNameLength[i] = 16;
		
		CreateLock(concessionClerkBreakLockName[i], concessionClerkBreakLockNameLength[i]); 
	}	
	
	for(i = 0; i < MAX_CC; i++){
	
		switch(i){
		
			case 0:
				str = "ConcesClerkBreakCV0";
			break;
			case 1:
				str = "ConcesClerkBreakCV1";
			break;
			case 2:
				str = "ConcesClerkBreakCV2";
			break;
			case 3:
				str = "ConcesClerkBreakCV3";
			break;
			case 4:
				str = "ConcesClerkBreakCV4";
			break;
			case 5:
				str = "ConcesClerkBreakCV5";
			break;		
		}
	
		concessionClerkBreakConditionVariableName[i]  = str;
		concessionClerkBreakConditionVariableNameLength[i] = 19;
		
		CreateCondition(concessionClerkBreakConditionVariableName[i], concessionClerkBreakConditionVariableNameLength[i]);
	
	}	
	
	
	
	CreateMonitor(concessionClerkBreakName, concessionClerkBreakNameLength);

	/* Manager - Ticket Taker break scenario */
	Printing("Manager - Ticket Taker break scenario", ConsoleOutput, 0,0);
	
	for(i = 0; i < MAX_TT; i++){
	
		switch(i){
		
			case 0:
				str = "TickTakerBreakLock0";
			break;
			case 1:
				str = "TickTakerBreakLock1";
			break;
			case 2:
				str = "TickTakerBreakLock2";
			break;
			case 3:
				str = "TickTakerBreakLock3";
			break;
			case 4:
				str = "TickTakerBreakLock4";
			break;
			case 5:
				str = "TickTakerBreakLock5";
			break;		
		}
	
		ticketTakerBreakLockName[i]  = str;
		ticketTakerBreakLockNameLength[i] = 19;
				
		CreateLock(ticketTakerBreakLockName[i], ticketTakerBreakLockNameLength[i]);

	}	
	
	for(i = 0; i < MAX_TT; i++){
	
		switch(i){
		
			case 0:
				str = "TickTakerBreakCV0";
			break;
			case 1:
				str = "TickTakerBreakCV1";
			break;
			case 2:
				str = "TickTakerBreakCV2";
			break;
			case 3:
				str = "TickTakerBreakCV3";
			break;
			case 4:
				str = "TickTakerBreakCV4";
			break;
			case 5:
				str = "TickTakerBreakCV5";
			break;		
		}
	
		ticketTakerBreakConditionVariableName[i]  = str;
		ticketTakerBreakConditionVariableNameLength[i] = 17;
				
		CreateCondition(ticketTakerBreakConditionVariableName[i], ticketTakerBreakConditionVariableNameLength[i]);

	}	

	CreateMonitor(ticketTakerBreakName, ticketTakerBreakNameLength);/* 1 = on break; 0 = off break; */
	
	/*Bathroom Variables*/
	Printing("Bathroom Variables\n", ConsoleOutput, 0,0);

	
	for(i = 0; i < MAX_GROUPS; i++){
	
		switch(i){
		
			case 0:
				str = "BathroomLock0";
			break;
			case 1:
				str = "BathroomLock1";
			break;
			case 2:
				str = "BathroomLock2";
			break;
			case 3:
				str = "BathroomLock3";
			break;
			case 4:
				str = "BathroomLock4";
			break;
			case 5:
				str = "BathroomLock5";
			break;
			case 6:
				str = "BathroomLock6";
			break;
			case 7:
				str = "BathroomLock7";
			break;
			case 8:
				str = "BathroomLock8";
			break;
			case 9:
				str = "BathroomLock9";
			break;
		}
	
		bathroomLockName[i]  = str;
		bathroomLockNameLength[i] = 13;
				
		CreateLock(bathroomLockName[i], bathroomLockNameLength[i]);

	}	
	
	for(i = 0; i < MAX_GROUPS; i++){
	
		switch(i){
		
			case 0:
				str = "BathroomCV0";
			break;
			case 1:
				str = "BathroomCV1";
			break;
			case 2:
				str = "BathroomCV2";
			break;
			case 3:
				str = "BathroomCV3";
			break;
			case 4:
				str = "BathroomCV4";
			break;
			case 5:
				str = "BathroomCV5";
			break;
			case 6:
				str = "BathroomCV6";
			break;
			case 7:
				str = "BathroomCV7";
			break;
			case 8:
				str = "BathroomCV8";
			break;
			case 9:
				str = "BathroomCV9";
			break;
		}
	
		bathroomLobbyConditionVariableName[i]  = str;
		bathroomLobbyConditionVariableNameLength[i] = 11;
				
		CreateCondition(bathroomLobbyConditionVariableName[i], bathroomLobbyConditionVariableNameLength[i]);

	}
	
	

	/*Index Counters for everyone*/
	Printing("Index Counters for everyone\n", ConsoleOutput, 0,0);
	
	CreateLock(regularCustomerIndexLockName, regularCustomerIndexLockNameLength);
	CreateLock(headCustomerIndexLockName, headCustomerIndexLockNameLength);
	CreateLock(ticketClerkIndexLockName, ticketClerkIndexLockNameLength);
	CreateLock(concessionClerkIndexLockName, concessionClerkIndexLockNameLength);
	CreateLock(ticketTakerIndexLockName, ticketTakerIndexLockNameLength);
	CreateLock(technicianIndexLockName, technicianIndexLockNameLength);
	
	
	
	CreateMonitor(nextRegularCustomerName, nextRegularCustomerNameLength);
	CreateMonitor(nextRegularHeadCustomerName, nextRegularHeadCustomerNameLength);
	CreateMonitor(nextCustomerIndexName, nextCustomerIndexNameLength);
	CreateMonitor(nextHeadCustomerName, nextHeadCustomerNameLength);
	CreateMonitor(nextTicketClerkName, nextTicketClerkNameLength);
	CreateMonitor(nextConcessionClerkName, nextConcessionClerkNameLength);
	CreateMonitor(nextTicketTakerName, nextTicketTakerNameLength);
	CreateMonitor(nextTechnicianName, nextTechnicianNameLength);
	
	Printing("Ending Initialization\n", ConsoleOutput, 0,0);

}


